Computer networks allow information to be transmitted from one computer or computing device to another. For example, one or more computers are established as nodes in a network so that users from the computers in the network can communicate with each other. As networks grow larger and more complex, devices such as routers and switches are needed to route data packets from the origin node to the destination node. Some of the protocols used by the Internet, such as TCP/IP and HTTP, do not include an explicit description of the delivery requirements of a message. An intermediary router that receives a message must therefore infer its delivery requirements. The minimum requirements that the intermediary can infer is that the outgoing message delivery requirements must be at least equal to the inbound message delivery guarantees.
By way of example, consider the decision to either packet route or circuit route messages. Currently, packet routing is the predominant form of routing on the Internet. Packet routing does not preserve connection-oriented features, such as routing paths, message-delivery order, or the presence of a back channel for replies. Circuit routing does preserve the features previously mentioned but requires more resources to route messages because this method preserves the routing paths. In addition, based on the nature of the application protocol, application messages may either support or not support being treated as datagram packets. However, if an intermediary receives an application message over a connection, the intermediary device must infer that the presence of the connection is significant and use circuit routing. As such, existing circuit routing schemes are inflexible and do not provide the optimal scalability or efficiency as with packet routing.